package com.zdxlz.fcmp.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zdxlz.fcmp.business.vo.IpsecDetailVo;
import com.zdxlz.fcmp.business.dto.IpsecVpnConfigDto;
import com.zdxlz.fcmp.business.dto.ict.DeviceInfoDto;
import com.zdxlz.fcmp.business.dto.ict.IctIpsecConfig;
import com.zdxlz.fcmp.business.entity.IpsecVpnConfigEntity;
import com.zdxlz.fcmp.business.vo.IpsecVpnConfigVo;

import java.util.List;

/**
 * <p>
 * IPSec配置表 服务类
 * </p>
 *
 * @author: aman
 * @since 2025-02-08
 */
public interface IIpsecVpnConfigService extends IService<IpsecVpnConfigEntity> {

    /**
     * @description：分页查询Ipsec配置信息
     * @author：aman
     * @date：2025/2/14 11:42
     */
    IPage<IpsecVpnConfigVo> getList(Page<IpsecVpnConfigEntity> page, IpsecVpnConfigDto ipsecVpnConfigDto);

    IpsecDetailVo getDetailById(Integer id);


    /**
     * @description：通过设备MAC地址查询IPsec模板配置信息
     * @author：aman
     * @date：2025/2/14 11:42
     */
    IPage<IctIpsecConfig> ictGetList(Page<IpsecVpnConfigEntity> page, DeviceInfoDto deviceInfoDto);

    /**
     * @description：创建Ipsec配置信息
     * @author：aman
     * @date：2025/2/14 11:41
     */
    boolean createIpsecVpnConfig(IpsecVpnConfigEntity ipsecVpnConfigEntity);

    /**
     * @description：通过IpSec配置ID更新IPSec配置信息
     * @author：aman
     * @date：2025/2/14 11:40
     */
    boolean updateIpsecVpnConfig(IpsecVpnConfigEntity ipsecVpnConfigEntity);

    /**
     * @description：通过IpSec配置ID删除IPSec配置信息
     * @author：aman
     * @date：2025/2/14 11:40
     */
    boolean deleteIpsecVpnConfig(List<Integer> ids);

    boolean removeIpsec(Integer id);
}
